package com.sheng.leetcode.year2023.month03.day21;

import org.junit.Test;

import java.math.BigDecimal;
import java.util.Arrays;

/**
 * @author liusheng
 * @date 2023/03/21
 * <p>
 * 2469. 温度转换<p>
 * <p>
 * 给你一个四舍五入到两位小数的非负浮点数 celsius 来表示温度，以 摄氏度（Celsius）为单位。<p>
 * 你需要将摄氏度转换为 开氏度（Kelvin）和 华氏度（Fahrenheit），并以数组 ans = [kelvin, fahrenheit] 的形式返回结果。<p>
 * 返回数组 ans 。与实际答案误差不超过 10-5 的会视为正确答案。<p>
 * 注意：<p>
 * 开氏度 = 摄氏度 + 273.15<p>
 * 华氏度 = 摄氏度 * 1.80 + 32.00<p>
 * <p>
 * 示例 1 ：<p>
 * 输入：celsius = 36.50<p>
 * 输出：[309.65000,97.70000]<p>
 * 解释：36.50 摄氏度：转换为开氏度是 309.65 ，转换为华氏度是 97.70 。<p>
 * <p>
 * 示例 2 ：<p>
 * 输入：celsius = 122.11<p>
 * 输出：[395.26000,251.79800]<p>
 * 解释：122.11 摄氏度：转换为开氏度是 395.26 ，转换为华氏度是 251.798 。<p>
 * <p>
 * 提示：<p>
 * 0 <= celsius <= 1000<p>
 * <p>
 * 来源：力扣（LeetCode）<p>
 * 链接：<a href="https://leetcode.cn/problems/convert-the-temperature">2469. 温度转换</a><p>
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。<p>
 */
public class LeetCode2469 {

    @Test
    public void test01() {
//        double celsius = 36.50;
        double celsius = 122.11;
        System.out.println(Arrays.toString(new Solution().convertTemperature(celsius)));
    }
}

class Solution {
    public double[] convertTemperature(double celsius) {
        double[] doubles = new double[2];
        // 开氏度 = 摄氏度 + 273.15
        double kelvin = new BigDecimal(celsius + "").add(new BigDecimal("273.15")).doubleValue();
        // 华氏度 = 摄氏度 * 1.80 + 32.00
        double fahrenheit = new BigDecimal(celsius + "").multiply(new BigDecimal("1.80")).add(new BigDecimal("32.00")).doubleValue();
        doubles[0] = kelvin;
        doubles[1] = fahrenheit;
        return doubles;
    }
}
